# Reference: <https://postmarketos.org/devicepkg>
# Maintainer: Caleb Connolly <caleb@connolly.tech>

pkgname=device-oneplus-enchilada
pkgdesc="OnePlus 6"
pkgver=14
pkgrel=4
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
	linux-postmarketos-qcom-sdm845
	mkbootimg
	postmarketos-base
	soc-qcom-sdm845
	soc-qcom-sdm845-ucm
	soc-qcom-sdm845-qbootctl
"
makedepends="devicepkg-dev"
source="
	10-unl0kr.conf
	deviceinfo
	hexagonrpcd.confd
	modules-initfs
	q6voiced.conf
	81-libssc-oneplus-enchilada.rules
"
subpackages="
	$pkgname-nonfree-firmware:nonfree_firmware
	$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
	$pkgname-pmtest
"

build() {
	devicepkg_build $startdir $pkgname
}

package() {
	devicepkg_package $startdir $pkgname

	install -Dm644 "$srcdir"/10-unl0kr.conf \
		"$pkgdir"/etc/unl0kr.conf.d/10-unl0kr.conf
}

nonfree_firmware() {
	pkgdesc="Modem, WiFi and GPU Firmware, also needed for osk-sdl"
	depends="
		firmware-oneplus-sdm845>=9
		hexagonrpcd
		soc-qcom-sdm845-nonfree-firmware
		soc-qcom-sdm845-modem
	"

	install -Dm644 "$srcdir"/81-libssc-oneplus-enchilada.rules -t "$subpkgdir"/usr/lib/udev/rules.d/
	install -Dm644 q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
}

nonfree_firmware_openrc() {
	install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
	replaces="hexagonrpcd-openrc"
	install="$subpkgname.post-install $subpkgname.post-upgrade"

	install -Dm644 "$srcdir"/hexagonrpcd.confd "$subpkgdir"/etc/conf.d/hexagonrpcd-sdsp
}

pmtest() {
	depends="bootrr qrtr firmware-oneplus-sdm845 unl0kr"
	install_if="$pkgname=$pkgver-r$pkgrel postmarketos-mkinitfs-hook-ci"
	install="$subpkgname.post-install"

	devicepkg_pmtest_post_install "ttyMSM0,115200" > "$subpkgname.post-install"
}

sha512sums="
e957b7b0ed219eaa56be6c6b976b60886f73970703fdebf045800154ee652affee4e19654b3ac4244b29bcf6760ad3db6cb87143dc9c4673e905800d751103d1  10-unl0kr.conf
83fc698ebeda6245abc2a653eeff97b3b996d06dd7731386a07d102937f9b005c7277e0dece05ff359d9ff109a1d9ed7791fc510b146354df179804aadb5642c  deviceinfo
c8d3026e9f803ea823e35f83dab66fa8545e99af9655576476c194567113084d78200feab46f84983a2dad608ca55c0a4a66e36406c6d64023c0aec59307d146  hexagonrpcd.confd
ea8709aa214cffaefb1d486c0c47044537446faebff16efb3b015623f043f730b7121e401c676e43aa8868bd6c630fc8a2d7dbf5fb082490e9b5493e0405b66d  modules-initfs
fe9871c325a38c0cadc9631870801ec15ab9f5b786ee854325b93eb3d23e7d8b1ac4f1075572ffcd225d8ec514dec09b986972ddff12a89260c0218af6de7887  q6voiced.conf
2c16ba75e0077b2b1eaefa4c73b287475505a1aeb291ec29316d41cc094277320f9d2aaabfd91eb1dc0f488ab2d61a94faef16e7afe0f1e226779113761b9a37  81-libssc-oneplus-enchilada.rules
"
